数据分析基础

您所在的位置:网站首页 r语言缺失值填补 函数 数据分析基础

数据分析基础

2024-01-13 11:08| 来源: 网络整理| 查看: 265

进行简单的数据处理时,我们处理的基本都是完整的数据集,但是实际问题中我们经常会遇到带有缺失值的数据,处理此类数据也就显得尤为重要。

处理缺失值的一般步骤

首先我们列出处理缺失值的一般步骤,对整个流程有一个大致的了解。

识别缺失数据;检查导致数据缺失的原因;删除包含缺失值的实例或用合理的数值插补缺失值。 数据缺失的种类 完全随机缺失(MCAR)随机缺失(MAR)非随机缺失(NMAR)

完全随机缺失:若某变量的缺失数据与其他任何观测和未观测变量都不相关,则数据为完全随机缺失。

随机缺失:若某变量上的缺失数据与其他观测变量相关,与他自己的未观测值不相关,则数据为随机缺失。

非随机缺失:若缺失数据不属于上两种则是非随机缺失。

识别缺失值

要想处理缺失值,首先我们就要去识别出来哪些数据是缺失值,R语言中,NA代表缺失值,NaN代表不可能的值,Inf和-Inf代表的是正无穷和负无穷。有对应的函数is.na()、is.nan()、is.infinite()可以分别用来识别缺失值,不可能值以及无穷值,返回的结果是TRUE/FALSE。

要想统计缺失值的个数,我们可以直接通过sum()函数来对TRUE/FALSE进行统计,其中TRUE的逻辑值是1,FALSE的逻辑值为0,同样不可能的值以及无穷值也可以用此方法进行判断。

探究缺失值

对于缺失值,我们只统计他的个数是不可取的,本节中给出探究缺失值的几种方法。

一、图表显示缺失值

我们可以用一个图标的形式去展示缺失值,在R语言中mice包中的md.pttern()函数提供了一个可以生成矩阵来显示缺失值的表格,示例如下:

library(lattice) library(mice) data(sleep,package="VIM") md.pattern(sleep)

得到的图表结果以及图形结果如下:

二、图形展示缺失值

md.pattren()函数已经给我们清晰的列出了每一项的缺失值,但是图形时一种更能够清晰的表达缺失值的一种方法,VIM包中提供了大量的可视化函数,我们来学习一下其中的一些函数。

aggr()函数

library(VIM) aggr(sleep,prop=FALSE,numbers=TRUE)

matrixplot()函数

matrixplot()

marginplot()函数

marginplot(sleep[c("Gest","Dream")],pch=c(20),col=c("darkgray","red","blue"))

缺失值的处理

一、删除

对于缺失值的处理首先我们先采用第一种最简单的方法——删除缺失值所在的行,R语言中提供了两种删除缺失值的函数,分别是complete.cases()函数和na.omit()函数。

对于删除的处理直接对数据进行使用即可,这里不做演示。

二、多重插补法

多重插补(MI)是一种基于重复模拟的处理缺失值的方法,在面对复杂的缺失值问题时,MI是常选用的方法,它将从一个包含缺失值的数据集中生成一组完整的数据集。本节中我们将使用R中的mice包对数据集进行插补。

mice包中多重插补法的工作流程如下:

Rå¤éæè¡¥æ³mice

 

基于mice包的分析通常要符合以下的过程:

library(mice) imp


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3